1. Field of the Invention
The invention relates to Non-Volatile Register (NVR) and Non-Volatile Shift Register (NVSR) devices in digital circuitry. In particular, the NVR and NVSR devices of the invention can directly load non-volatile digital information into the registers for fast and constantly referencing.
2. Description of the Related Art
In digital circuitry, registers and shift registers are broadly applied for storing small amount digital information for fast and constantly referencing. A common property of computer programs is locality of reference: the same values are often accessed repeatedly and frequently used values held in registers improve performance. This is what makes fast registers meaningful in contrast to the general data accessed from the main memory units. For building the register and shift register in a digital circuitry the main static memory element of the conventional register and shift register is usually constructed by a pair of cross-connected MOSFET (Metal-Oxide-Semiconductor-Field-Effect-Transistor) invertors 111 and 112 as the circuit schematics shown in FIG. 1. As the digital representation of core voltage VDD for “1” and ground voltage VSS for “0” in digital circuitry, one bit of stored digital information is sensed by the voltage potentials at the output node Q of the crossed inverters 111 and 112 in the register device as in FIG. 1. The digital information stored in a plurality of registers can be directly read out from their outputs in parallel. Or reducing the numbers of each individual output nodes to a single output node of a series of registers, the shift registers are designed to shift the digital data from one register to the next neighbor register by a clock sequence. The series bits of digital information stored in shift registers are sequentially sent out from the output port of the lead register.
Registers are normally measured by the number of bits they can hold, for example, an “8-bit register” or a “32-bit register”. Registers are also categorized as processor registers and memory registers according to their applications for Computing Process Unit (CPU) and memory units, respectively. A processor often contains several kinds of registers classified accordingly to their content or instructions. For example, floating point and constant registers store floating point numbers and numerical constants; vector registers hold data for vector processing done by single instruction multiple data; conditional registers hold truth values often used to determine whether some instructions should or should not be executed; control and status registers are applied for program counters, instruction registers and program status words. Meanwhile the memory registers such as buffer register, data registers, address registers, and type range registers fetch data from RAM (Random Addressable Memory).
Although the data inside the conventional registers and shift registers can be fast and constantly accessed, the stored data disappear after the chip power is turned off, that is, the stored data in the conventional registers and shift registers are volatile. When a digital circuitry is turned on, the initial data in the registers must be loaded either from an on-chip non-volatile memory unit such as ROM (Read Only Memory) and EEPROM (Electrical Erasable Programmable Read Only Memory), or from external memory units. The conventional data fetching process for registers would require the time to read out the data from a memory unit and the time to load the fetched data into the registers, resulting in performance degradation. The data fetch process also requires more chip power from the non-volatile memory sensing circuitry. Therefore, it will be very desirable for registers to load non-volatile data directly without going through the conventional data fetching process from non-volatile memory units to improve the performance of register and to save chip power from non-volatile memory data sensing.
In this invention, we have developed Non-Volatile Register (NVR) and Non-Volatile Shift Register (NVSR) based on the previously developed Non-Volatile Static Random Access Memory (U.S. patent application Ser. No. 13/206,270, the disclosure of which is incorporated herein by reference in its entirety). The NVR and NVSR of the invention can directly load non-volatile data from semiconductor non-volatile memory elements to their correspondent static memory elements (cross-connected inverters) without going through a readout process from a non-volatile memory. When a digital circuitry embedded with the NVR and NVSR is “on”, the non-volatile data are immediately loaded to the correspondent static memory elements in the registers. The data in the NVR and NVSR are then ready for fast and constantly referencing for the digital circuitry.